EVERSION = 3.00_node _gallery.h1&Component Gallery action base classes.1 _gallery.h&..\..\..\vfp\foxpro.h $scripthook Init Pixels..\catalog.ico..\catalog.ico Node class.Classcustom_nodecustomPROCEDURE removeview LOCAL lcViewItem,lnCount IF this.lDeleted RETURN ENDIF lcText=LOWER(this.cText) IF NOT EMPTY(lcText) AND TYPE("this.oHost.cboViewType")=="O" WITH this.oHost.cboViewType FOR lnCount = 1 TO .ListCount IF LOWER(.List[lnCount])==lcText .RemoveItem(lnCount) EXIT ENDIF ENDFOR ENDWITH ENDIF RETURN this.Remove(.F.,.T.) ENDPROC PROCEDURE clookin_assign LPARAMETERS vNewVal LOCAL lcLookIn,lcLookInAlias,oFolder,lnCount this.cLookIn=m.vNewVal lcLookIn=LOWER(ALLTRIM(m.vNewVal)) IF EMPTY(lcLookIn) OR lcLookIn==LOWER(M_ALL_CATALOGS_LOC) this.cLookInAlias="" RETURN ENDIF lcLookInAlias="" FOR lnCount = 1 TO this.oHost.nFolderCount oFolder=this.oHost.aFolderList[lnCount] IF NOT ISNULL(oFolder) AND oFolder.lCatalog AND ; ALLTRIM(LOWER(oFolder.cText))==lcLookIn lcLookInAlias=oFolder.cSourceAlias EXIT ENDIF ENDFOR this.cLookInAlias=lcLookInAlias ENDPROC custom _gallery.vcx\Height = 22 Width = 24 conselection = cmenu = ohost = .NULL. Name = "_shortcutmenu" _folderClass1 _gallery.h&..\..\..\vfp\foxpro.h $_record _gallery.hPixelsClass1custom_recordPixelscustom _gallery.h1 _gallery.h_item_view _gallery.h ..\folder.ico11 _gallery.h&..\..\..\vfp\foxpro.h $PixelsClass1_node_viewcustom _gallery.vcxName = "_itemshortcutmenu" 7cobjecttype = object lobject = .T. Name = "_object"  _gallery.vcxClassPixels1 _shortcutmenu _gallery.vcx ..\folder.ico_foldercustom Folder class.11 _gallery.h&..\..\..\vfp\foxpro.h $cfoldertype lsortoncleanup lsearchsubdirectories *initvcxfolder *initfilefolder *initpjxfolder *initdbcfolder *getfoldertype *find *initfolder *cleanup *backup *restore custom1PixelsClasscustom _shortcutmenucustom _gallery.vcx1 _gallery.hӪ&..\..\..\vfp\foxpro.hԂ $_item _gallery.h_itemshortcutmenu _gallery.hPixelscustom_object1 _gallery.h&..\..\..\vfp\foxpro.h $PixelsClass _shortcutmenu_itemshortcutmenu$*createnode *pastelink *paste _object_nodecfoldertype = lsortoncleanup = .T. lsearchsubdirectories = .T. citemtype = cobjecttype = folder lfolder = .T. lgetfileaddress = .T. Name = "_folder"  ..\item.ico ..\item.ico Item class.Class_node_itemnlastdatasessionid nlastselect nlastrecno loriginaldeleted ldeleted_access ldeleted_assign setdeleted getdeleted setpointer restorepointer scatter gather nrecno calias ndatasessionid orecord ldeleted nlastdatasessionid nlastselect nlastrecno lautocommit loriginaldeleted *newinstance *revert *commit *ldeleted_access *ldeleted_assign *setdeleted *getdeleted *delete Delete Event. *recall *setpointer *restorepointer *reset Resets the Timer control so that it starts counting from 0. *scatter *gather *newrecord *release Releases a FormSet or Form from memory. Height = 24 Width = 24 nrecno = 1 calias = ndatasessionid = 1 orecord = .NULL. nlastdatasessionid = 1 nlastselect = 1 nlastrecno = 1 lautocommit = .T. Name = "_record" cviewalias litemname lclassname ldescription lproperties lfilename ccontaining clookin ckeywordlist citemtypes llookinenabled leditmode clookinalias *removeview *clookin_assign cviewalias = litemname = .T. ldescription = .T. ccontaining = clookin = ckeywordlist = citemtypes = llookinenabled = .T. cobjecttype = view lview = .T. clookinalias = Name = "_view"  RPROCEDURE newinstance LPARAMETERS tnDataSessionID LOCAL oNewObject,lnLastDataSessionID lnLastDataSessionID=SET("DATASESSION") IF TYPE("tnDataSessionID")=="N" AND tnDataSessionID>=1 SET DATASESSION TO tnDataSessionID ELSE SET DATASESSION TO (this.nDataSessionID) ENDIF oNewObject=NEWOBJECT(this.Class,this.ClassLibrary) SET DATASESSION TO (lnLastDataSessionID) RETURN oNewObject ENDPROC PROCEDURE revert IF NOT this.SetPointer() this.oRecord=.NULL. RETURN .F. ENDIF IF this.lOriginalDeleted DELETE ELSE RECALL ENDIF this.Scatter this.RestorePointer ENDPROC PROCEDURE commit IF NOT this.SetPointer() RETURN .F. ENDIF this.Gather this.RestorePointer ENDPROC PROCEDURE ldeleted_access RETURN this.GetDeleted() ENDPROC PROCEDURE ldeleted_assign LPARAMETERS m.vNewVal this.SetDeleted(m.vNewVal) ENDPROC PROCEDURE setdeleted LPARAMETERS lDeleted IF NOT this.SetPointer() RETURN .F. ENDIF IF NOT lDeleted=DELETED() IF lDeleted DELETE ELSE RECALL ENDIF ENDIF this.RestorePointer ENDPROC PROCEDURE getdeleted LOCAL llDeleted IF NOT this.SetPointer() RETURN .F. ENDIF llDeleted=DELETED() this.RestorePointer RETURN llDeleted ENDPROC PROCEDURE delete RETURN this.SetDeleted(.T.) ENDPROC PROCEDURE recall RETURN this.SetDeleted(.F.) ENDPROC PROCEDURE setpointer IF ISNULL(this.oRecord) this.lOriginalDeleted=.F. RETURN .F. ENDIF this.nLastDataSessionID=SET("DATASESSION") SET DATASESSION TO (this.nDataSessionID) this.nLastSelect=SELECT() this.nLastRecNo=RECNO() IF NOT USED(this.cAlias) OR NOT BETWEEN(this.nRecNo,1,RECCOUNT(this.cAlias)) this.lOriginalDeleted=.F. SET DATASESSION TO (this.nDataSessionID) RETURN .F. ENDIF SELECT (this.cAlias) GO this.nRecNo ENDPROC PROCEDURE restorepointer SET DATASESSION TO (this.nLastDataSessionID) SELECT (this.nLastSelect) IF USED() AND BETWEEN(this.nLastRecNo,1,RECCOUNT()) GO this.nLastRecNo ENDIF ENDPROC PROCEDURE reset LOCAL lnDataSessionID,lcAlias,lnRecNo,oRecord lnDataSessionID=SET("DATASESSION") lcAlias=LOWER(ALIAS()) lnRecNo=RECNO() IF USED() this.lOriginalDeleted=DELETED() SCATTER MEMO NAME oRecord ELSE this.lOriginalDeleted=.F. oRecord=.NULL. ENDIF IF this.lAutoCommit this.Commit ENDIF this.nDataSessionID=lnDataSessionID this.cAlias=lcAlias this.nRecNo=lnRecNo this.oRecord=oRecord ENDPROC PROCEDURE scatter SCATTER MEMO NAME this.oRecord ENDPROC PROCEDURE gather GATHER MEMO NAME this.oRecord ENDPROC PROCEDURE newrecord LOCAL oNewRecord IF NOT this.SetPointer() RETURN .F. ENDIF APPEND BLANK oNewRecord=this.NewInstance() this.RestorePointer RETURN oNewRecord ENDPROC PROCEDURE release RELEASE this ENDPROC PROCEDURE Destroy IF this.lAutoCommit this.Commit ENDIF ENDPROC PROCEDURE Init IF NOT this.Reset() RETURN .F. ENDIF ENDPROC conselection cmenu ohost ^amenu[1,0] *release Releases a FormSet or Form from memory. *deactivatemenu *activatemenu *clearmenu *newmenu *addmenubar *addmenuseparator *showmenu *setmenu *releaseobjects  %3$_U %BTC@4%C !Cthis.oHost.cboViewTypebO (%CC @C !BC-a U LCVIEWITEMLNCOUNTTHISLDELETEDLCTEXTCTEXTOHOST CBOVIEWTYPE LISTCOUNTLIST REMOVEITEMREMOVET TCC @*%CC{All Catalogs}@ }TB T( TC ,%C  CC @ T !TUVNEWVALLCLOOKIN LCLOOKINALIASOFOLDERLNCOUNTTHISCLOOKIN CLOOKINALIASOHOST NFOLDERCOUNT AFOLDERLISTLCATALOGCTEXT CSOURCEALIAS removeview,clookin_assign1AA!A1AAAAA3q1"1AAAAA2v)tHeight = 23 Width = 23 ctype = cid = cparent = cdesc = ccatalog = oparent = .NULL. cproperties = cscript = ohost = .NULL. _cversion = builder = builderx = cclick = cdragdrop = cdblclick = crightclick = cdragdrop2 = clink = olink = .NULL. nitemindex = 0 nitemcount = -1 ctext = cscriptmethod = nindex = 0 ctooltiptext = cstatusbartext = cpicture = cfolderpicture = visible = .T. ckeypress = osource = .NULL. otarget = .NULL. citemclass = nnodeindex = 0 ccatalogpath = oobject = .NULL. citemclasslibrary = lfullpath = .T. ctypedesc = enabled = .T. cviews = oaction = .NULL. nrecno = 0 calias = ofolder = .NULL. cclasslib = cclassname = citemtpdesc = ccomment = cuser = cobjecttype = node vresult = .T. tupdated = ({:}) nsourcerecno = 0 csourcealias = csourcecatalog = oshortcutmenu = .NULL. cid2 = onode = .NULL. orecord = .NULL. ckeywords = cclass = cfilename = coledragover = coledragdrop = ocontrol = .NULL. csourcecatalogpath = citemtype = ctarget = crefreshed = cselected = lignorescripterrors = .T. Name = "_node" lrightclickmenu = .T. crightclickmenu = lautosetmenu = .T. cmethod = citemtypedesc = lmodify = .T. lpropertiesmenu = .T. ldefaultmenu = .T. cformclasslibrary = lnewmenu = .T. lpastemenus = .T. cobjecttype = item Name = "_item" lrightclickmenu crightclickmenu lautosetmenu cmethod citemtypedesc lmodify lpropertiesmenu ldefaultmenu cformclasslibrary lnewmenu lpastemenus lwebview Specifies Web View mode on/off. *modify *run Occurs when an Active Document is ready to execute your application code. *showmenu *setmenu *about *help *clearmenu *quickview *uponelevel *open *setfocus Sets the focus to a control. *show Displays a Form and determines if the Form is modal or modeless. *hide Hides a Form, FormSet, or ToolBar by setting the Visible property to false (.F.). *disable *enable *newmenu *addmenuseparator *addpropertiesmenu *addmenubar *adddefaultmenu *cut *copy *paste *createlink *rename *pastelink *addpastemenus *oledragover Occurs when data is dragged over a dragged over a drop target and the drop target's OLEDropMode property is set to 1 - Enabled. *oledragdrop Occurs when data is dropped on a drop target and the drop target's OLEDropMode property is set to 1 - Enabled. *olecompletedrag Occurs when data is dropped on the drop target or the OLE drag and drop operation is canceled. *olegivefeedback Occurs after every OLEDragOver event. Allows the drag source to specify the type of OLE drag and drop operation and the visual feedback. *olesetdata Occurs when a drop target calls the GetData method and there is no data in the specified format. *olestartdrag Occurs on a drag source object as soon as the OLE drag operation begins. *afterlabeledit v ]]O %+ dU <UTHISRELEASEOBJECTS?%CBuTUTHISCMENU     TCCDTCCD%C this.aMenubCB-TC%B->%CthisformbO C@toolbar  !TCC6"T CC C]C6T TCT u %Cs W'1 DEACTIVATE MENU (lcMenu) T(L.T CC C6N%C lcMenuItembCC $  C \-  T.T T -%C =^T C \ T a&%CC -TCCB T%Cms " ?DEFINE BAR lnBar OF (lcMenu) PROMPT (lcMenuItem) &lcClauses  % G: (a% .T C-%CluMenuSelectionbOC T C] s W(1 DEACTIVATE MENU (lcMenu2)1  %C T C .%C T C%C H7ON SELECTION BAR lnBar OF (lcMenu) &luMenuSelection %C oB t %C uTU TCPARENTMENULNARRAYCOLUMNS LLMULTIARRAYLNBAR LNSKIPCOUNTLNCOUNTLNMROWLNMCOL LNMENUCOUNTLCMENULCMENU2 LCMENUITEMLUMENUSELECTION LLSETMARK LCCLAUSESTHISAMENUTHISFORM BASECLASS DOCKPOSITIONCMENU CONSELECTION ACTIVATEMENU3TTUTHISAMENU CONSELECTIONBCUTHISCLASS CLASSLIBRARYb     %CTB-&%CtcPromptbOC  T  T (C 7CC  C  C  B TTCC6 %AT^ %pT SKIP FOR .T. %T STYLE "B"T CT C!%  CC  T  T T   T    #%CtnElementNumberbNT CC8D% %C B- T  % T BT T % [T UTCPROMPT TCONSELECTION TCCLAUSESTNELEMENTNUMBERTLMARK TLDISABLEDTLBOLDLCPROMPT LCCLAUSESLNELEMENTNUMBER LNMENUCOUNTLNARRAYCOLUMNSLNINDEX OSHORTCUTMENUAMENUTHIS ADDMENUBAR"C\-UTNELEMENTNUMBERTHIS ADDMENUBAR BCUTHIS ACTIVATEMENU B-UTOOBJECTTHIS CLEARMENU UTHIS CLEARMENUTUTHISOHOST UTHISRELEASEOBJECTSrelease,deactivatemenuZ activatemenu clearmenuanewmenu addmenubaraddmenuseparator showmenu^ setmenu Init releaseobjects Destroy 1q3!AAA3qqAQqAA!Q!QqAqAAq!AaAAAAA!1AAA!AqAAAA1A33R3qAarAAA!AAAQQAa1AqAAAaAAA3q33qq33326[ ] ka 7 qcX vBa}2Pe)]ctype cid cparent cdesc ccatalog Catalog file name. oparent cproperties cscript ohost _cversion Version information. builder builderx cclick cdragdrop cdblclick crightclick cdragdrop2 clink olink nitemindex nitemcount ctext lscriptmode cscriptmethod nindex ctooltiptext cstatusbartext cpicture cfolderpicture visible Specifies whether an object is visible or hidden. ckeypress osource otarget citemclass nnodeindex ccatalogpath Catalog file path. oobject citemclasslibrary lfullpath ctypedesc lobject enabled Specifies whether the form or control can respond to user-generated events. cviews oaction lruncodemode nrecno calias ofolder cclasslib cclassname citemtpdesc ccomment cuser cobjecttype vresult tupdated nsourcerecno csourcealias csourcecatalog oshortcutmenu cid2 onode orecord lcatalog lfolder lfolderitem lview ckeywords cclass cfilename coledragover coledragdrop ocontrol ldeleted csourcecatalogpath citemtype ctarget lgetfileaddress lrelease ldynamic crefreshed lrefreshed cselected lignorescripterrors *click Occurs when the user presses and then releases a mouse button over an object or when you programmatically trigger the event. *dblclick Occurs when the user presses and releases the left (primary) mouse button twice in quick succession. *rightclick Occurs when the user presses and then releases the right (secondary) mouse button over a control. *keypress Occurs when the user presses and releases a key. *dragdrop Occurs when a drag-and-drop operation is completed. *dragdrop2 *runcode *setproperties *scripthook *runscript ^aitemindexes[1,0] *fullpath *writeproperties *readproperties *properties *refresh Repaints a Form or control and refreshes any values. *release Releases a FormSet or Form from memory. *remove *getfile *getfileaddress *newinstance *releaseobjects *refreshpicture *refreshfolderpicture *initproperties *refreshed *selected Specifies if an item is selected in a ComboBox or ListBox control.  %jRIU] TCa%COLB- UTVALIASTNRECNOONODETHISOHOST CREATENODERELEASEBCUTHISOHOST PASTELINKOFOLDERBCUTHISOHOSTPASTEOFOLDER  T T T $T    TCDC Lar\RECCOUNT(),0,RECNO()) lcAlias=LOWER(SYS(2015)) lcAlias2=LOWER(SYS(2015)) SELECT 0 USE (lcFileName) AGAIN SHARED ALIAS (lcAlias2) IF NOT USED(lcAlias2) OR TYPE("Reserved1")#"M" USE SELECT (lnLastSelect) IF lnRecNo>0 GO lnRecNo ENDIF RETURN .F. ENDIF SELECT LEFT(ObjName,128),* FROM (lcAlias2) ; WHERE NOT DELETED() ; ORDER BY 1 ; INTO CURSOR (lcAlias) USE IN (lcAlias2) SCAN ALL FOR LOWER(Reserved1)=="class" lcClass=LOWER(ALLTRIM(ObjName)) lcPicture=ALLTRIM(Reserved5) IF NOT EMPTY(lcPicture) lcPicture=LOWER(FULLPATH(lcPicture,lcFileName)) ENDIF SELECT (this.cAlias) APPEND BLANK REPLACE Type WITH "ITEM", Parent WITH this.cID, Text WITH lcClass, ; Desc WITH lcClass+" ("+lcFileName+")", Picture WITH lcPicture, ; Class WITH lcClass, FileName WITH lcFileName, ; ClassName WITH "_ClassItem", ClassLib WITH "vfpglry.vcx", ; Updated WITH DATETIME() SELECT (lcAlias) ENDSCAN USE IN (lcAlias) SELECT (lnLastSelect) IF lnRecNo>0 GO lnRecNo ENDIF ENDPROC PROCEDURE initfilefolder LOCAL lcFileName,lcFileExt,lnLastSelect,lnRecNo,lcFile,lcPath,lnCount LOCAL lcDefaultCatalogPath,lnFileCount,lcMatchFile,lcPrefix,lnSuffix,lnAtPos LOCAL laDir[1] IF NOT this.InitFolder() RETURN .F. ENDIF lcFileName=LOWER(this.cFileName) lcDefaultCatalogPath=this.oHost.cDefaultCatalogPath lcPath=JUSTPATH(lcFileName)+"\" IF EMPTY(this.cFolderPicture) this.cFolderPicture="ffldr.ico" ENDIF lcMatchFile=JUSTFNAME(lcFileName) lnAtPos=AT(".",lcMatchFile) IF lnAtPos=0 lcPrefix=lcMatchFile lcSuffix="*" ELSE lcPrefix=ALLTRIM(LEFT(lcMatchFile,lnAtPos-1)) lcSuffix=ALLTRIM(SUBSTR(lcMatchFile,lnAtPos+1)) IF EMPTY(lcSuffix) lcSuffix="*" ENDIF ENDIF IF EMPTY(lcPrefix) lcPrefix="*" ENDIF lnLastSelect=SELECT() lnRecNo=IIF(EOF() OR RECNO()>RECCOUNT(),0,RECNO()) SELECT (this.cAlias) lnFileCount=ADIR(laDir,lcPath+"*.*","D") ASORT(laDir) FOR lnCount = 1 TO lnFileCount lcFile=LOWER(ALLTRIM(laDir[lnCount,1])) IF LEFT(lcFile,1)=="." LOOP ENDIF IF "D"$laDir[lnCount,5] IF NOT this.lSearchSubDirectories LOOP ENDIF APPEND BLANK REPLACE Type WITH "FOLDER", ID WITH LOWER(SYS(2015)), ; Parent WITH this.cID, Text WITH PROPER(lcFile), ; Desc WITH lcPath, ; FileName WITH lcPath+lcFile+"\"+lcPrefix+"."+lcSuffix, ; Updated WITH DATETIME() LOOP ENDIF lcMatchFile=JUSTFNAME(lcFile) lcFileExt=JUSTEXT(lcFile) IF NOT LIKE(lcPrefix,FORCEEXT(lcMatchFile,"")) OR ; NOT LIKE(lcSuffix,JUSTEXT(lcMatchFile)) LOOP ENDIF DO CASE CASE INLIST(lcFileExt+" ","dbc ","pjx ","vcx ") APPEND BLANK REPLACE Type WITH "FOLDER", ID WITH LOWER(SYS(2015)), ; Parent WITH this.cID, Text WITH PROPER(lcFile), ; Desc WITH lcPath, ; FileName WITH lcPath+lcFile, ; Updated WITH DATETIME() CASE INLIST(lcFileExt+" ","fpt ","cdx ","idx ","dct ","dcx ","frt ","fxp ", ; "qpx ","mpx ","lbt ","mnt ","pjt ","tbk ","spx ","vct ","sct ") LOOP OTHERWISE APPEND BLANK REPLACE Type WITH "ITEM", Parent WITH this.cID, Text WITH lcFile, ; Desc WITH lcPath+lcFile, ; FileName WITH lcPath+lcFile, ; ClassName WITH "_FileItem", ClassLib WITH "vfpglry.vcx", ; Updated WITH DATETIME() ENDCASE ENDFOR SELECT (lnLastSelect) IF lnRecNo>0 GO lnRecNo ENDIF ENDPROC PROCEDURE initpjxfolder LOCAL lcFileName,oNode,lcAlias,lcAlias2,lnLastSelect,lnRecNo,lcName,lcParent LOCAL lcItemType,lcID,lcDesc,lcClassName,lcClassLib,lcDefaultCatalogPath,lcType LOCAL lcDataID,lcDatabasesID,lcFreeTablesID,lcQueriesID,lcPath LOCAL lcDocumentsID,lcFormsID,lcReportsID,lcLablesID,lcClassLibrariesID LOCAL lcCodeID,lcProgramsID,lcAPILibrariesID,lcApplicationsID LOCAL lcOtherID,lcMenusID,lcTextFilesID,lcOtherFilesID IF NOT this.InitFolder() OR EMPTY(SYS(2000,this.cFileName)) RETURN .F. ENDIF lcFileName=this.cFileName lcDefaultCatalogPath=this.oHost.cDefaultCatalogPath lcPath=JUSTPATH(lcFileName)+"\" IF EMPTY(this.cFolderPicture) this.cFolderPicture="pfldr.ico" ENDIF lnLastSelect=SELECT() lnRecNo=IIF(EOF() OR RECNO()>RECCOUNT(),0,RECNO()) lcDesc="Project: "+lcFileName oNode=this.oHost.CreateNode(this.cAlias,"FOLDER") WITH oNode .cParent=this.cID .cText="Data" .cFolderPicture="data.ico" .WriteProperties(.F.,.T.) lcDataID=.cID ENDWITH oNode.Release oNode=this.oHost.CreateNode(this.cAlias,"FOLDER") WITH oNode .cParent=lcDataID .cText="Databases" .cFolderPicture="database.ico" .WriteProperties(.F.,.T.) lcDatabasesID=.cID ENDWITH oNode.Release oNode=this.oHost.CreateNode(this.cAlias,"FOLDER") WITH oNode .cParent=lcDataID .cText="Free Tables" .cFolderPicture="table.ico" .WriteProperties(.F.,.T.) lcFreeTablesID=.cID ENDWITH oNode.Release oNode=this.oHost.CreateNode(this.cAlias,"FOLDER") WITH oNode .cParent=lcDataID .cText="Queries" .cFolderPicture="queries.ico" .WriteProperties(.F.,.T.) lcQueriesID=.cID ENDWITH oNode.Release oNode=this.oHost.CreateNode(this.cAlias,"FOLDER") WITH oNode .cParent=this.cID .cText="Documents" .cFolderPicture="docs.ico" .WriteProperties(.F.,.T.) lcDocumentsID=.cID ENDWITH oNode.Release oNode=this.oHost.CreateNode(this.cAlias,"FOLDER") WITH oNode .cParent=lcDocumentsID .cText="Forms" .cFolderPicture="forms.ico" .WriteProperties(.F.,.T.) lcFormsID=.cID ENDWITH oNode.Release oNode=this.oHost.CreateNode(this.cAlias,"FOLDER") WITH oNode .cParent=lcDocumentsID .cText="Reports" .cFolderPicture="reports.ico" .WriteProperties(.F.,.T.) lcReportsID=.cID ENDWITH oNode.Release oNode=this.oHost.CreateNode(this.cAlias,"FOLDER") WITH oNode .cParent=lcDocumentsID .cText="Labels" .cFolderPicture="labels.ico" .WriteProperties(.F.,.T.) lcLabelsID=.cID ENDWITH oNode.Release oNode=this.oHost.CreateNode(this.cAlias,"FOLDER") WITH oNode .cParent=this.cID .cText="Class Libraries" .cFolderPicture="classlib.ico" .WriteProperties(.F.,.T.) lcClassLibrariesID=.cID ENDWITH oNode.Release oNode=this.oHost.CreateNode(this.cAlias,"FOLDER") WITH oNode .cParent=this.cID .cText="Code" .cFolderPicture="code.ico" .WriteProperties(.F.,.T.) lcCodeID=.cID ENDWITH oNode.Release oNode=this.oHost.CreateNode(this.cAlias,"FOLDER") WITH oNode .cParent=lcCodeID .cText="Programs" .cFolderPicture="programs.ico" .WriteProperties(.F.,.T.) lcProgramsID=.cID ENDWITH oNode.Release oNode=this.oHost.CreateNode(this.cAlias,"FOLDER") WITH oNode .cParent=lcCodeID .cText="API Libraries" .cFolderPicture="apilibra.ico" .WriteProperties(.F.,.T.) lcAPILibrariesID=.cID ENDWITH oNode.Release oNode=this.oHost.CreateNode(this.cAlias,"FOLDER") WITH oNode .cParent=lcCodeID .cText="Applications" .cFolderPicture="apps.ico" .WriteProperties(.F.,.T.) lcApplicationsID=.cID ENDWITH oNode.Release oNode=this.oHost.CreateNode(this.cAlias,"FOLDER") WITH oNode .cParent=this.cID .cText="Other" .cFolderPicture="other.ico" .WriteProperties(.F.,.T.) lcOtherID=.cID ENDWITH oNode.Release oNode=this.oHost.CreateNode(this.cAlias,"FOLDER") WITH oNode .cParent=lcOtherID .cText="Menus" .cFolderPicture="menus.ico" .WriteProperties(.F.,.T.) lcMenusID=.cID ENDWITH oNode.Release oNode=this.oHost.CreateNode(this.cAlias,"FOLDER") WITH oNode .cParent=lcOtherID .cText="Text" .cFolderPicture="text.ico" .WriteProperties(.F.,.T.) lcTextID=.cID ENDWITH oNode.Release oNode=this.oHost.CreateNode(this.cAlias,"FOLDER") WITH oNode .cParent=lcOtherID .cText="Other Files" .cFolderPicture="othrfile.ico" .WriteProperties(.F.,.T.) lcOtherFilesID=.cID ENDWITH oNode.Release oNode=.NULL. lcAlias=LOWER(SYS(2015)) lcAlias2=LOWER(SYS(2015)) SELECT 0 USE (lcFileName) AGAIN SHARED ALIAS (lcAlias2) IF NOT USED(lcAlias2) USE SELECT (lnLastSelect) IF lnRecNo>0 GO lnRecNo ENDIF RETURN .F. ENDIF SELECT LEFT(JUSTFNAME(Name),254),* FROM (lcAlias2) ; WHERE NOT DELETED() ; ORDER BY 1 ; INTO CURSOR (lcAlias) USE IN (lcAlias2) SCAN ALL FOR NOT EMPTY(Name) lcName=ALLTRIM(STRTRAN(Name,CHR(0),"")) IF NOT ":"$lcName AND NOT "\\"$lcName lcName=LOWER(FULLPATH(lcName,lcPath)) ENDIF lcType=Type lcClassName="" lcClassLib="" lcID="" lcParent=this.cID lcItemType="ITEM" DO CASE CASE lcType=="H" IF NOT EMPTY(this.cDesc) this.cDesc=this.cDesc+CR ENDIF this.cDesc=this.cDesc+lcDesc+CR+ ; "Debug info "+IIF(Debug,"on","off")+CR+ ; "Encrypt "+IIF(Encrypt,"on","off") LOOP CASE lcType=="B" lcParent=lcLabelsID lcClassname="_ReportItem" lcClassLib="vfpglry.vcx" CASE lcType=="d" lcID=LOWER(SYS(2015)) lcParent=lcDatabasesID lcItemType="FOLDER" CASE lcType=="D" lcParent=lcFreeTablesID lcClassname="_DataItem" lcClassLib="vfpglry.vcx" CASE lcType=="K" lcParent=lcFormsID lcClassname="_FormItem" lcClassLib="vfpglry.vcx" CASE lcType=="L" lcParent=lcAPILibrariesID lcClassname="_FileItem" lcClassLib="vfpglry.vcx" CASE lcType=="M" lcParent=lcMenusID lcClassname="_MenuItem" lcClassLib="vfpglry.vcx" CASE lcType=="P" lcParent=lcProgramsID lcClassname="_FileItem" lcClassLib="vfpglry.vcx" CASE lcType=="Q" lcParent=lcQueriesID lcClassname="_FileItem" lcClassLib="vfpglry.vcx" CASE lcType=="R" lcParent=lcReportsID lcClassname="_ReportItem" lcClassLib="vfpglry.vcx" CASE lcType=="T" lcParent=lcTextID lcClassname="_FileItem" lcClassLib="vfpglry.vcx" CASE lcType=="V" lcID=LOWER(SYS(2015)) lcParent=lcClassLibrariesID lcItemType="FOLDER" CASE lcType=="Z" lcParent=lcApplicationsID lcClassname="_FileItem" lcClassLib="vfpglry.vcx" OTHERWISE lcParent=lcOtherFilesID lcClassname="_FileItem" lcClassLib="vfpglry.vcx" ENDCASE SELECT (this.cAlias) APPEND BLANK REPLACE Type WITH lcItemType, ID WITH lcID, Parent WITH lcParent, ; Text WITH JUSTFNAME(lcName), Desc WITH lcName+CR+lcDesc, ; FileName WITH lcName, ; ClassName WITH lcClassName, ClassLib WITH lcClassLib, ; Updated WITH DATETIME() SELECT (lcAlias) ENDSCAN USE IN (lcAlias) SELECT (lnLastSelect) IF lnRecNo>0 GO lnRecNo ENDIF ENDPROC PROCEDURE initdbcfolder LOCAL lcFileName,lcAlias,lcAlias2,lnRecNo,lcTable,lcTableName,lcTablePath LOCAL lcDefaultCatalogPath,lnAtPos,lnLastSelect IF NOT this.InitFolder() OR EMPTY(SYS(2000,this.cFileName)) RETURN .F. ENDIF lcFileName=this.cFileName lcTablePath=JUSTPATH(lcFileName)+"\" lcDefaultCatalogPath=this.oHost.cDefaultCatalogPath IF EMPTY(this.cFolderPicture) this.cFolderPicture="dfldr.ico" ENDIF lnLastSelect=SELECT() lnRecNo=IIF(EOF() OR RECNO()>RECCOUNT(),0,RECNO()) lcAlias=LOWER(SYS(2015)) lcAlias2=LOWER(SYS(2015)) SELECT 0 USE (lcFileName) AGAIN SHARED ALIAS (lcAlias2) IF NOT USED(lcAlias2) USE SELECT (lnLastSelect) IF lnRecNo>0 GO lnRecNo ENDIF RETURN .F. ENDIF SELECT LEFT(ObjectName,128),* FROM (lcAlias2) ; WHERE NOT DELETED() ; ORDER BY 1 ; INTO CURSOR (lcAlias) USE IN (lcAlias2) SCAN ALL FOR LOWER(ALLTRIM(ObjectType))=="table" lcTable=LOWER(ALLTRIM(SUBSTR(Property,16))) lnAtPos=AT(CHR(0),lcTable) IF lnAtPos>0 lcTable=ALLTRIM(LEFT(lcTable,lnAtPos-1)) ENDIF lcTable=FORCEPATH(lcTable,lcTablePath) lcTableName=LOWER(ALLTRIM(ObjectName)) SELECT (this.cAlias) APPEND BLANK REPLACE Type WITH "ITEM", Parent WITH this.cID, Text WITH JUSTFNAME(lcTableName), ; Desc WITH lcTableName, FileName WITH lcTable, ; ClassName WITH "_DataItem", ClassLib WITH "vfpglry.vcx", ; Updated WITH DATETIME() SELECT (lcAlias) ENDSCAN SCAN ALL FOR NOT DELETED() AND LOWER(ALLTRIM(ObjectType))=="view" lcTableName=LOWER(ALLTRIM(ObjectName)) SELECT (this.cAlias) APPEND BLANK REPLACE Type WITH "ITEM", Parent WITH this.cID, Text WITH lcTableName, ; Desc WITH lcTableName, FileName WITH lcFileName, ; ClassName WITH "_DataItem", ClassLib WITH "vfpglry.vcx", ; Properties WITH "cViewName="+lcTableName, ; Updated WITH DATETIME() SELECT (lcAlias) ENDSCAN USE IN (lcAlias) SELECT (lnLastSelect) IF lnRecNo>0 GO lnRecNo ENDIF ENDPROC PROCEDURE getfoldertype LOCAL lcFileName,lcFileExt lcFileName=LOWER(ALLTRIM(this.cFileName)) IF EMPTY(lcFileName) RETURN "" ENDIF lcFileExt=JUSTEXT(lcFileName) IF AT(":",lcFileName)>=3 OR LEFT(lcFileName,4)=="www." OR ; RIGHT(lcFileName,1)=="/" OR RIGHT(lcFileName,1)=="\" RETURN "web" ENDIF IF EMPTY(JUSTFNAME(lcFileName)) OR "*"$lcFileName OR "?"$lcFileName OR "%"$lcFileName RETURN "file" ENDIF DO CASE CASE lcFileExt=="dbc" RETURN "dbc" CASE lcFileExt=="pjx" RETURN "pjx" CASE lcFileExt=="vcx" RETURN "vcx" ENDCASE RETURN "web" ENDPROC PROCEDURE find this.oHost.oView=this.oHost.CreateNode("catalog1","VIEW") IF ISNULL(this.oHost.oView) RETURN .F. ENDIF WITH this.oHost.oView .oParent=this .lLookInEnabled=.F. .cLookIn=this.oHost.oCatalog.cText ENDWITH this.oHost.Find ENDPROC PROCEDURE initfolder IF this.nItemCount>0 OR EMPTY(this.cFileName) RETURN .F. ENDIF this.lDynamic=.T. ENDPROC PROCEDURE cleanup LPARAMETERS tlNoRefresh,tlIgnoreErrors this.vResult=.T. DO brwCleanupCatalog IN browser WITH (this),(tlNoRefresh),(tlIgnoreErrors) RETURN this.vResult ENDPROC PROCEDURE backup LPARAMETERS tcFileName this.vResult=.T. DO brwBackupCatalog IN browser WITH (this),.F.,(tcFileName) RETURN this.vResult ENDPROC PROCEDURE restore LPARAMETERS tcFileName this.vResult=.T. DO brwBackupCatalog IN browser WITH (this),.T.,(tcFileName) RETURN this.vResult ENDPROC PROCEDURE initproperties LOCAL lcFolderType IF NOT DODEFAULT() RETURN .F. ENDIF lcFolderType=this.GetFolderType() this.cFolderType=lcFolderType IF EMPTY(lcFolderType) RETURN ENDIF DO CASE CASE this.lWebView RETURN CASE lcFolderType=="web" this.lWebView=.T. RETURN CASE this.lFolderItem RETURN CASE lcFolderType=="file" RETURN this.InitFileFolder() CASE lcFolderType=="dbc" RETURN this.InitDBCFolder() CASE lcFolderType=="pjx" RETURN this.InitPJXFolder() CASE lcFolderType=="vcx" RETURN this.InitVCXFolder() ENDCASE ENDPROC PROCEDURE open LOCAL lnIndex IF NOT this.lFolderItem RETURN ENDIF IF ISNULL(this.oFolder) RETURN .F. ENDIF lnIndex=this.oHost.nItemListIndex IF lnIndex>0 this.oHost.oleItems.object.ListItems.Item[lnIndex].Selected=.F. this.oHost.nItemListIndex=-1 ENDIF lnIndex=this.oFolder.nNodeIndex IF lnIndex<1 RETURN .F. ENDIF WITH this.oHost .oleFolderList.object.Nodes[lnIndex].Selected=.T. .RefreshItemList .oleItems.SetFocus ENDWITH ENDPROC PROCEDURE dblclick IF NOT DODEFAULT() RETURN .F. ENDIF this.Open ENDPROC PROCEDURE run IF this.lWebView AND NOT EMPTY(this.cFileName) RETURN this.oHost.ShellExecute(this.cFileName) ENDIF ENDPROC PROCEDURE modify IF NOT this.lModify OR NOT this.lWebView OR EMPTY(this.cFileName) OR NOT "."$this.cFileName RETURN .F. ENDIF MODIFY FILE (this.cFileName) IF this.oHost.lWebView this.oHost.RefreshItemList this.oHost.oleWebBrowser.Refresh2 ENDIF ENDPROC  i P P % } U TC DATASESSIONv.%CtnDataSessionIDbN e G(|G(TC G( BUTNDATASESSIONID ONEWOBJECTLNLASTDATASESSIONIDTHISNDATASESSIONIDCLASS CLASSLIBRARYf%C 'TB-%?K:  UTHIS SETPOINTERORECORDLORIGINALDELETEDSCATTERRESTOREPOINTER4%C B-  UTHIS SETPOINTERGATHERRESTOREPOINTER BCUTHIS GETDELETED C UVNEWVALTHIS SETDELETEDg%C  B-%C' V %FR: ULDELETEDTHIS SETPOINTERRESTOREPOINTERF%C  B- TC'  BU LLDELETEDTHIS SETPOINTERRESTOREPOINTERBCaUTHIS SETDELETEDBC-UTHIS SETDELETED%C'T-B-TC DATASESSIONvG(TCWTCO+%C CCN T-G(B- F #U THISORECORDLORIGINALDELETEDNLASTDATASESSIONIDNDATASESSIONID NLASTSELECT NLASTRECNOCALIASNRECNOLG( F%CCCN E #UTHISNLASTDATASESSIONID NLASTSELECT NLASTRECNOTC DATASESSIONvTCC@ TCO %CkTC' ^JT- T% TT T TU LNDATASESSIONIDLCALIASLNRECNOORECORDTHISLORIGINALDELETED LAUTOCOMMITCOMMITNDATASESSIONIDCALIASNRECNO ^JUTHISORECORD _JUTHISORECORDP%C  B-TC  BU ONEWRECORDTHIS SETPOINTER NEWINSTANCERESTOREPOINTER <UTHIS!% UTHIS LAUTOCOMMITCOMMIT %C B-UTHISRESET newinstance,revert>commitldeleted_accessPldeleted_assignv setdeleted getdeletedKdeleterecall setpointerrestorepointerfresetscatterWgathery newrecordrelease*Destroy>Init~1qA3!qAAAA3!qA3323q"qAAAAA3q"qA333!qAqA3A31AA333q"qAQ3q3A3!qA2 Gd&!O*$p01?@9K;0O=QSMeS^ mf| h j s u  y G )P pPROCEDURE release this.ReleaseObjects RELEASE this ENDPROC PROCEDURE deactivatemenu IF EMPTY(this.cMenu) RETURN ENDIF DEACTIVATE POPUP (this.cMenu) this.cMenu="" DOEVENTS ENDPROC PROCEDURE activatemenu LPARAMETERS tcParentMenu LOCAL lnArrayColumns,llMultiArray,lnBar,lnSkipCount,lnCount,lnMRow,lnMCol LOCAL lnMenuCount,lcMenu,lcMenu2,lcMenuItem,luMenuSelection,llSetMark,lcClauses lnMRow=MAX(MROW(),0) lnMCol=MAX(MCOL(),0) IF TYPE("this.aMenu")#"C" RETURN .F. ENDIF lnMenuCount=ALEN(this.aMenu,1) IF lnMenuCount=0 RETURN .F. ENDIF IF lnMRow<=0 AND TYPE("thisform")=="O" AND ; LOWER(thisform.BaseClass)=="toolbar" lnMRow=IIF(thisform.DockPosition=3,SROWS(),0) ENDIF lcMenu=IIF(EMPTY(tcParentMenu),SYS(2015),ALLTRIM(tcParentMenu)) this.cMenu=lcMenu lnArrayColumns=ALEN(this.aMenu,2) llMultiArray=(lnArrayColumns>0) DEACTIVATE POPUP (lcMenu) CLEAR TYPEAHEAD IF EMPTY(tcParentMenu) DEFINE POPUP (lcMenu) ; FROM lnMRow,lnMCol ; MARGIN ; SHORTCUT ON SELECTION POPUP (lcMenu) DEACTIVATE MENU (lcMenu) ENDIF lnSkipCount=0 FOR lnCount = 1 TO lnMenuCount lcMenuItem=IIF(llMultiArray,this.aMenu[lnCount,1],this.aMenu[lnCount]) IF TYPE("lcMenuItem")#"C" OR EMPTY(lcMenuItem) OR ; ((lnCount=1 OR lnCount=lnMenuCount) AND ALLTRIM(lcMenuItem)=="\-") lnSkipCount=lnSkipCount+1 LOOP ENDIF lnBar=lnCount-lnSkipCount llSetMark=.F. IF LEFT(lcMenuItem,1)=="^" lcMenuItem=SUBSTR(lcMenuItem,2) llSetMark=.T. ENDIF IF lnArrayColumns>=3 AND NOT EMPTY(this.aMenu[lnCount,3]) lcClauses=ALLTRIM(this.aMenu[lnCount,3]) ELSE lcClauses="" ENDIF IF EMPTY(lcClauses) DEFINE BAR lnBar OF (lcMenu) PROMPT (lcMenuItem) ELSE DEFINE BAR lnBar OF (lcMenu) PROMPT (lcMenuItem) &lcClauses ENDIF IF llSetMark SET MARK OF BAR (lnBar) OF (lcMenu) TO .T. ENDIF IF NOT llMultiArray LOOP ENDIF luMenuSelection=this.aMenu[lnCount,2] IF TYPE("luMenuSelection")=="O" AND NOT ISNULL(luMenuSelection) lcMenu2=SYS(2015) DEFINE POPUP (lcMenu2) ; MARGIN ; SHORTCUT ON SELECTION POPUP (lcMenu2) DEACTIVATE MENU (lcMenu2) ON BAR lnBar OF (lcMenu) ACTIVATE POPUP (lcMenu2) IF EMPTY(luMenuSelection.cOnSelection) luMenuSelection.cOnSelection=this.cOnSelection ENDIF luMenuSelection.ActivateMenu(lcMenu2) LOOP ENDIF IF EMPTY(luMenuSelection) luMenuSelection=ALLTRIM(this.cOnSelection) ENDIF IF NOT EMPTY(luMenuSelection) ON SELECTION BAR lnBar OF (lcMenu) &luMenuSelection ENDIF ENDFOR IF lnSkipCount>=lnMenuCount OR NOT EMPTY(tcParentMenu) RETURN ENDIF ACTIVATE POPUP (lcMenu) IF NOT EMPTY(this.cMenu) DEACTIVATE POPUP (this.cMenu) ENDIF this.cMenu="" ENDPROC PROCEDURE clearmenu DIMENSION this.aMenu[1] this.aMenu="" this.cOnSelection="" ENDPROC PROCEDURE newmenu RETURN NEWOBJECT(this.Class,this.ClassLibrary) ENDPROC PROCEDURE addmenubar LPARAMETERS tcPrompt,tcOnSelection,tcClauses,tnElementNumber,tlMark,tlDisabled,tlBold LOCAL lcPrompt,lcClauses,lnElementNumber,lnMenuCount,lnArrayColumns,lnIndex,oShortCutMenu IF EMPTY(tcPrompt) RETURN .F. ENDIF IF TYPE("tcPrompt")=="O" AND NOT ISNULL(tcPrompt) oShortCutMenu=tcPrompt tcPrompt=.NULL. FOR lnIndex = 1 TO ALEN(oShortCutMenu.aMenu,1) this.AddMenuBar(oShortCutMenu.aMenu[lnIndex,1],oShortCutMenu.aMenu[lnIndex,2], ; oShortCutMenu.aMenu[lnIndex,3]) ENDFOR RETURN ENDIF lcPrompt=tcPrompt lcClauses=IIF(EMPTY(tcClauses),"",tcClauses) IF tlMark lcPrompt="^"+lcPrompt ENDIF IF tlDisabled lcClauses=lcClauses+[ SKIP FOR .T.] ENDIF IF tlBold lcClauses=lcClauses+[ STYLE "B"] ENDIF lnMenuCount=ALEN(this.aMenu,1) lnArrayColumns=ALEN(this.aMenu,2) IF lnMenuCount<=1 AND EMPTY(this.aMenu[1]) lnMenuCount=1 lnArrayColumns=3 ELSE lnMenuCount=lnMenuCount+1 ENDIF lnIndex=lnMenuCount DIMENSION this.aMenu[lnIndex,lnArrayColumns] IF TYPE("tnElementNumber")=="N" lnElementNumber=MAX(INT(tnElementNumber),1) IF lnElementNumber=3 this.aMenu[lnIndex,3]=lcClauses ENDIF ENDPROC PROCEDURE addmenuseparator LPARAMETERS tnElementNumber this.AddMenuBar("\-",,,tnElementNumber) ENDPROC PROCEDURE showmenu RETURN this.ActivateMenu() ENDPROC PROCEDURE setmenu LPARAMETERS toObject this.ClearMenu RETURN .F. ENDPROC PROCEDURE Init this.ClearMenu ENDPROC PROCEDURE releaseobjects this.oHost=.NULL. ENDPROC PROCEDURE Destroy this.ReleaseObjects ENDPROC #Q 8#8#%!_UB% B-TCCt BU LLNODEFAULTTHISENABLED SCRIPTHOOKB% B-TCCt BU LLNODEFAULTTHISENABLED SCRIPTHOOKB% B-TCCt BU LLNODEFAULTTHISENABLED SCRIPTHOOKo % *B-% L BCTCCt BUNKEYCODE NSHIFTALTCTRL LLNODEFAULTTHISENABLEDDBLCLICK SCRIPTHOOKTT% <B- HM#O CoSource.parent.lBrowserbL!CC =@ classbrowser  :% #CoSource.parent.oItem.cIDbC T T2#TTCCt T BU OSOURCENXCOORDNYCOORD LLNODEFAULTTHISENABLEDPARENTNAMELBROWSEROITEM SCRIPTHOOKT% <B-'%CoSourcebO C TTCTTTCCtT BU OSOURCENXCOORDNYCOORD LLNODEFAULTTHISOTARGETENABLEDCTARGET SCRIPTHOOKi5 TTaCT- TUTCCODETLFILETVIGNOREERRORSOTHISTHIS LRUNCODEMODEOHOSTRUNCODE   5 (% CC C |B- T T T C  ( TC %CC=* .(%C=<CR> N"TCCC>\.TC=%z.TCC=TC[%TC(%!TCC([)]*TCCC=6y%Cg. , LCh Ch Ch ChProperty   .T Cthis.bTCC\ H( C=(CR) 4TCCC>\ CS T NtTCg LTC#TClvValuebL 2 Tthis.&lcProperty=lvValue . T U TCPROPERTIES LCPROPERTIESLNATPOSLNATPOS2 LCPROPERTY LCPROPERTY2LCVALUELVVALUE LCMEMLINE LNMEMLINELNMEMLINECOUNT LCVARTYPE LAMEMLINESOTHISTHISLRELEASE RUNSCRIPT%6BTC.%bBTC\Tc#%ChProperty BTCCthis.Λ%CBTaT TCT T  HM3 C=< CR> "CCCC\C>= 2CT T T-B-U TCPROGRAMLCMETHOD LCPROPERTYLCSCRIPTLNATPOS LNMEMLINESLLLASTIGNOREERRORSTHIS LSCRIPTMODE CSCRIPTMETHODOHOST LIGNOREERRORSLIGNORESCRIPTERRORS RUNSCRIPTRUNCODE7  T H4 CJB- CO%CcScripthT CC%CTTC2T%CB-BC U TVITEMTVIGNOREERRORSLCIDOITEMLCSCRIPTTHISCSCRIPTOHOST GETSCRIPTRUNCODE0 %C2 BTC(%C=(CR) TCCC>\%C B*% : \\  BC@.%C\:C=www. +TCC@ BTCC@9TCC tmp C\ 6TCC@/%* ? CC]  %C OTCC @%CC]TCC@ BU TCFILENAME LCNEWFILENAME LCFILENAMELCSOURCECATALOGFILEEXTLCPATHTHIS LFULLPATHCSOURCECATALOG CLASSLIBRARYCSOURCECATALOGPATHOHOSTCDEFAULTCATALOGPATHO Ta'browser BUTLUPDATESOURCE TLAUTOADDTHISVRESULTBRWWRITEPROPERTIESBROWSER6Tabrowser BUTHISVRESULTBRWREADPROPERTIESBROWSERBCUTHISOHOST PROPERTIESTa UTHISLRELEASERELEASEOBJECTSL !%  CBHT Are you sure you want to remove C @ " " H 1T from the Component Gallery view   h(T from the catalog table% d4T# including all subfolders and items2(T from the catalog table+%C?$ B-Ta%BTT%zT%C dC%C Q%C QQT#Do you want to delete catalog table "C@"  permanently>%C C0 C?$ P  Cfpt  %rBB#%CCCN # #%CCCN #  %B% ;  U TLCONFIRM TLNOREFRESHLCALIAS LCSOURCEALIAS LCMESSAGE LCCATALOGTHISLCATALOGOHOST NVIEWTYPECTYPECTEXTLFOLDER LFOLDERITEMLWEBVIEWMSGBOXLDELETED NSOURCERECNOCALIAS CSOURCEALIASCCATALOGUPDATEFORMCOUNTREFRESHBROWSERNRECNOOPARENTSETFOCUSREFRESHM % 4BCBCaU TCFILEEXTTLAUTOEXTDIALOGTHISLGETFILEADDRESSOHOSTGETFILEGETFILEADDRESS& BCUTLNOSHELLEXECUTE TCFILEEXTTHISOHOSTGETFILEADDRESSBCUTHISCLASS CLASSLIBRARYTTTTTTTTT T T T U THISOACTIONOCONTROLOFOLDEROHOSTOLINKONODEOOBJECTOPARENTORECORD OSHORTCUTMENUOSOURCEOTARGETB% B-TCCt BU LLNODEFAULTTHISENABLED SCRIPTHOOKB% B-TCCt BU LLNODEFAULTTHISENABLED SCRIPTHOOKTa UTHISLRELEASERELEASEOBJECTS+%C this.oHostbO C VBC'%C _oBrowserbOC BCUNERRORCMETHODNLINETHISOHOSTERROR _OBROWSERclick,dblclick rightclickkeypressvdragdrop4 dragdrop2runcode% setproperties scripthook runscriptP fullpathwritepropertiesreadpropertiesX propertiesreleaseremove0getfilegetfileaddress? newinstancereleaseobjects refreshedselectedjDestroyError1qqA13qqA13qqA13qqAA13qqAa1AA13qqAqA13q3q1qqAQq!AA!AA1AA11AAAA!!!1AAA3qAA1AAa!1AAAA1a1!A1q3qQAQAAqAa3AAAAAQAAQAA3q33A331AAAAAqAAAAAAA1AAAAA11A11AAAA3A!33Q33qqA13qqA133AqA2$ E!-5ZEFx-YNQ/dPLr 1- . r!b4!!k7!"Q"q9v"s#uF# $M,$$T$$W%&)8# 2PROCEDURE createnode LPARAMETERS tvAlias,tnRecNo LOCAL oNode oNode=this.oHost.CreateNode(tvAlias,tnRecNo,,.T.) IF VARTYPE(oNode)#"O" RETURN .F. ENDIF oNode.Release ENDPROC PROCEDURE pastelink RETURN this.oHost.PasteLink(this.oHost.oFolder) ENDPROC PROCEDURE paste RETURN this.oHost.Paste(this.oHost.oFolder) ENDPROC PROCEDURE setmenu LPARAMETERS toObject LOCAL oViewMenu,oNewMenu,oFolder,lnImageView,llNewNodes,lnLastSelect LOCAL lcText,llViewMode,llNewMenu,llAddSeparator oFolder=toObject.oHost.oFolderSource lnImageView=toObject.oHost.nImageView llViewMode=(toObject.oHost.nViewType>1) llNewMenu=(toObject.lNewMenu AND NOT llViewMode AND NOT toObject.lDynamic) this.ClearMenu oViewMenu=this.NewMenu() oViewMenu.AddMenuBar(B_LARGEICONS1_LOC,"oTHIS.oHost.SetImageView(0)",,,lnImageView=0) oViewMenu.AddMenuBar(B_SMALLICONS1_LOC,"oTHIS.oHost.SetImageView(1)",,,lnImageView=1) oViewMenu.AddMenuBar(B_LIST1_LOC,"oTHIS.oHost.SetImageView(2)",,,lnImageView=2) oViewMenu.AddMenuBar(B_DETAILS1_LOC,"oTHIS.oHost.SetImageView(3)",,,lnImageView=3) this.AddMenuBar(B_VIEW1_LOC,oViewMenu) this.AddMenuSeparator llAddSeparator=toObject.AddPasteMenus(toObject,this) IF llAddSeparator this.AddMenuSeparator ENDIF IF llNewMenu AND USED("itemtypes") oNewMenu=this.NewMenu() llNewNodes=.F. lnLastSelect=SELECT() SELECT itemtypes SET ORDER TO Text LOCATE SCAN ALL FOR Visible lcText=ALLTRIM(Text) IF LEFT(lcText,1)=="*" lcText=ALLTRIM(SUBSTR(lcText,2)) ENDIF IF LEFT(lcText,1)=="~" lcText=ALLTRIM(SUBSTR(lcText,2)) ENDIF IF NOT llNewNodes llNewNodes=.T. oNewMenu.AddMenuSeparator ENDIF IF lcText=="\-" oNewMenu.AddMenuSeparator ELSE oNewMenu.AddMenuBar(lcText,[oTHIS.CreateNode(oTHIS.oHost.oFolderSource,]+ ; ALLTRIM(STR(RECNO()))+[)]) ENDIF ENDSCAN SELECT (lnLastSelect) this.AddMenuBar(B_NEWITEM1_LOC,oNewMenu) this.AddMenuSeparator ENDIF IF oFolder.lPropertiesMenu this.AddMenuBar(B_PROPERTIES1_LOC,"oTHIS.oHost.oFolder.Properties") ENDIF ENDPROC PROCEDURE Error LPARAMETERS nError, cMethod, nLine IF TYPE("this.oHost")=="O" AND NOT ISNULL(this.oHost) RETURN this.oHost.Error(nError,cMethod,nLine) ENDIF IF TYPE("_oBrowser")=="O" AND NOT ISNULL(_oBrowser) RETURN _oBrowser.Error(nError,cMethod,nLine) ENDIF ENDPROC 5#  5 5)%v.3'/U $%C CC ] QB-T T %C T  cfldr.ico TCW"TCC+COCN CO6TCC]@TCC]@FQ'%C C Reserved1bM nQ F%c #B-+oC=C'  Q~C@classTCC@TC%C TCC@ F>ITEM () _ClassItem vfpglry.vcxC F Q F% #U LCFILENAMELCALIASLCALIAS2 LNLASTSELECTLNRECNOLCCLASSLCDEFAULTCATALOGPATH LCPICTURETHIS INITFOLDER CFILENAMEOHOSTCDEFAULTCATALOGPATHCFOLDERPICTUREOBJNAME RESERVED1 RESERVED5CALIASTYPEPARENTCIDTEXTDESCPICTURECLASSFILENAME CLASSNAMECLASSLIBUPDATED'    %C `B-TC@TTC\%CT ffldr.icoT CT C. %  T  T*uT CC =TCC \%CqT*%C T * TCW"TCC+COCN CO6 F TC *.*D C (TCCC @%C=.M.%DC % .o>FOLDERCC]@C\ .C.T CTC)%C C } CC } M. H^) C dbc pjx vcx ]>FOLDERCC]@CC C fpt cdx idx dct dcx frt fxp qpx mpx lbt mnt pjt tbk spx vct sct q.2v>ITEM _FileItem vfpglry.vcxC F%  #U! LCFILENAME LCFILEEXT LNLASTSELECTLNRECNOLCFILELCPATHLNCOUNTLCDEFAULTCATALOGPATH LNFILECOUNT LCMATCHFILELCPREFIXLNSUFFIXLNATPOSLADIRTHIS INITFOLDER CFILENAMEOHOSTCDEFAULTCATALOGPATHCFOLDERPICTURELCSUFFIXCALIASLSEARCHSUBDIRECTORIESTYPEIDPARENTCIDTEXTDESCFILENAMEUPDATED CLASSNAMECLASSLIB<#      $%C!" CC!#] B-T!#T !$%TC\%C!&(T!& pfldr.ico TCW"TCC+COCN CO6T  Project: #TC!(FOLDER!$' T)!*T+DataT&data.ico C-a,T* -#TC!(FOLDER!$' T)T+ DatabasesT& database.ico C-a,T* -#TC!(FOLDER!$' 'T)T+ Free TablesT& table.ico C-a,T* -#TC!(FOLDER!$' T)T+QueriesT& queries.ico C-a,T* -#TC!(FOLDER!$' ST)!*T+ DocumentsT&docs.ico C-a,T* -#TC!(FOLDER!$' T)T+FormsT& forms.ico C-a,T* -#TC!(FOLDER!$' yT)T+ReportsT& reports.ico C-a,T* -#TC!(FOLDER!$'  T)T+LabelsT& labels.ico C-a,T.* -#TC!(FOLDER!$' T)!*T+Class LibrariesT& classlib.ico C-a,T* -#TC!(FOLDER!$' ?T)!*T+CodeT&code.ico C-a,T* -#TC!(FOLDER!$' T)T+ProgramsT& programs.ico C-a,T* -#TC!(FOLDER!$' rT)T+ API LibrariesT& apilibra.ico C-a,T* -#TC!(FOLDER!$'  T)T+ ApplicationsT&apps.ico C-a,T* -#TC!(FOLDER!$'  T)!*T+OtherT& other.ico C-a,T* -#TC!(FOLDER!$' . T)T+MenusT& menus.ico C-a,T* -#TC!(FOLDER!$'  T)T+TextT&text.ico C-a,T/* -#TC!(FOLDER!$' W T)T+ Other FilesT& othrfile.ico C-a,T * - TTCC]@TCC]@FQ%C  Q F% #B-.oCC0=C'  Q~C0 TCC0C !%: \\  TCC@ T1 T  T  T T!*TITEM H x H %C!2 3 T!2!2C lT!2!2 C  Debug info C3onoff6C Encrypt C4onoff6. B T.T  _ReportItemT  vfpglry.vcx d:T CC]@ TTFOLDER D TT  _DataItemT  vfpglry.vcx K TT  _FormItemT  vfpglry.vcx L! TT  _FileItemT  vfpglry.vcx Mn TT  _MenuItemT  vfpglry.vcx P TT  _FileItemT  vfpglry.vcx Q TT  _FileItemT  vfpglry.vcx RW TT  _ReportItemT  vfpglry.vcx T T/T  _FileItemT  vfpglry.vcx VT CC]@ TTFOLDER Z5 TT  _FileItemT  vfpglry.vcx2x T T  _FileItemT  vfpglry.vcx F!(j>15 67C8C  9: ; <C F Q F%5 #U= LCFILENAMEONODELCALIASLCALIAS2 LNLASTSELECTLNRECNOLCNAMELCPARENT LCITEMTYPELCIDLCDESC LCCLASSNAME LCCLASSLIBLCDEFAULTCATALOGPATHLCTYPELCDATAID LCDATABASESIDLCFREETABLESID LCQUERIESIDLCPATH LCDOCUMENTSID LCFORMSID LCREPORTSID LCLABLESIDLCCLASSLIBRARIESIDLCCODEID LCPROGRAMSIDLCAPILIBRARIESIDLCAPPLICATIONSID LCOTHERID LCMENUSID LCTEXTFILESIDLCOTHERFILESIDTHIS INITFOLDER CFILENAMEOHOSTCDEFAULTCATALOGPATHCFOLDERPICTURE CREATENODECALIASCPARENTCIDCTEXTWRITEPROPERTIESRELEASE LCLABELSIDLCTEXTIDNAMETYPECDESCDEBUGENCRYPTIDPARENTTEXTDESCFILENAME CLASSNAMECLASSLIBUPDATED $%C CC ] YB-T TC\T %C T  dfldr.ico T CW"TCC+COCN CO6TCC]@TCC]@FQ%C tQ F %i #B-+oC=C'  Q~CC@tableTCCC\@TCC %TCC=TCTCC@ F q>ITEM C _DataItem vfpglry.vcxC F"~C' CC@view TCC@ F >ITEM  _DataItem vfpglry.vcx cViewName=C F Q F % #U LCFILENAMELCALIASLCALIAS2LNRECNOLCTABLE LCTABLENAME LCTABLEPATHLCDEFAULTCATALOGPATHLNATPOS LNLASTSELECTTHIS INITFOLDER CFILENAMEOHOSTCDEFAULTCATALOGPATHCFOLDERPICTURE OBJECTNAME OBJECTTYPEPROPERTYCALIASTYPEPARENTCIDTEXTDESCFILENAME CLASSNAMECLASSLIBUPDATED PROPERTIESo TCC@%C7 BTCM%C:C=www. CR/ CR\  Bweb6%CCԡ * ? %  Bfile H\ dbc Bdbc pjx< Bpjx vcx\ Bvcx BwebU LCFILENAME LCFILEEXTTHIS CFILENAME,TCcatalog1VIEW%CHB-T T-T  U THISOHOSTOVIEW CREATENODEOPARENTLLOOKINENABLEDCLOOKINOCATALOGCTEXTFIND< % C 'B-TaUTHIS NITEMCOUNT CFILENAMELDYNAMICO Ta'browser BU TLNOREFRESHTLIGNOREERRORSTHISVRESULTBRWCLEANUPCATALOGBROWSERHTa$browser- BU TCFILENAMETHISVRESULTBRWBACKUPCATALOGBROWSERHTa$browsera BU TCFILENAMETHISVRESULTBRWBACKUPCATALOGBROWSER?%C B-TCT%CTB He8 yB webTaB B file BC dbc BC pjx BC vcx8 BC U LCFOLDERTYPETHIS GETFOLDERTYPE CFOLDERTYPELWEBVIEW LFOLDERITEMINITFILEFOLDER INITDBCFOLDER INITPJXFOLDER INITVCXFOLDER% B%C9B-T%#T  -TT % B- T   a ULNINDEXTHIS LFOLDERITEMOFOLDEROHOSTNITEMLISTINDEXOLEITEMSOBJECT LISTITEMSITEMSELECTED NNODEINDEX OLEFOLDERLISTNODESREFRESHITEMLISTSETFOCUS&%C B- UTHISOPEN:% C 3BCUTHISLWEBVIEW CFILENAMEOHOST SHELLEXECUTE8%  C . ?B-/% UTHISLMODIFYLWEBVIEW CFILENAMEOHOSTREFRESHITEMLIST OLEWEBBROWSERREFRESH2 initvcxfolder,initfilefolderI initpjxfolder initdbcfolder getfoldertype$findi& initfolderj'cleanup'backupl(restore(initpropertiesp)open7+dblclick,run'-modify-1BqA1!A!!!1qAAqAAAQ% AA3"qA!1Q!A1AAA!qqAAAAQAAAAQBAQeAAA31qq11BqA1Q!A!1!aA1qA1qA1QA1qaA11qA1QA1AA1A1!aA1aA1A1aA11qA11qA1!aA1A!!1AAqA!AA!1AA!!!1!a!a!a!a!a!a!!a!!1!aaAQAA3BqAQ1!A!!!1AAqAaAA1QA!QeAA3BAAaAAAAA3QqA1qA3qA3q3qA3qA3qqAAAAAAAQAAAA3qAA!qA11AA1qAA3qA3aA3qA1A2,6n)z)`113344 5 >555v667!77V9)q9*;GI;|;`;;g< =m) 5&PROCEDURE click LOCAL llNoDefault IF NOT this.Enabled RETURN .F. ENDIF llNoDefault=this.ScriptHook(PROGRAM()) RETURN llNoDefault ENDPROC PROCEDURE dblclick LOCAL llNoDefault IF NOT this.Enabled RETURN .F. ENDIF llNoDefault=this.ScriptHook(PROGRAM()) RETURN llNoDefault ENDPROC PROCEDURE rightclick LOCAL llNoDefault IF NOT this.Enabled RETURN .F. ENDIF llNoDefault=this.ScriptHook(PROGRAM()) RETURN llNoDefault ENDPROC PROCEDURE keypress LPARAMETERS nKeyCode, nShiftAltCtrl LOCAL llNoDefault IF NOT this.Enabled RETURN .F. ENDIF IF nKeyCode=32 RETURN this.DblClick() ENDIF llNoDefault=this.ScriptHook(PROGRAM()) RETURN llNoDefault ENDPROC PROCEDURE dragdrop LPARAMETERS oSource, nXCoord, nYCoord LOCAL llNoDefault this.oSource=.NULL. IF NOT this.Enabled RETURN .F. ENDIF DO CASE CASE TYPE("oSource.parent.lBrowser")=="L" AND ; LOWER(LEFT(oSource.parent.Name,12))=="classbrowser" IF NOT oSource.parent.lBrowser AND TYPE("oSource.parent.oItem.cID")=="C" this.oSource=oSource.parent.oItem ELSE this.oSource=oSource.parent ENDIF OTHERWISE this.oSource=oSource ENDCASE llNoDefault=this.ScriptHook(PROGRAM()) this.oSource=.NULL. RETURN llNoDefault ENDPROC PROCEDURE dragdrop2 LPARAMETERS oSource, nXCoord, nYCoord LOCAL llNoDefault this.oTarget=.NULL. IF NOT this.Enabled RETURN .F. ENDIF IF TYPE("oSource")#"O" OR ISNULL(this.oSource) this.oTarget=.NULL. this.cTarget=MWINDOW() ELSE this.oTarget=oSource this.cTarget="" ENDIF llNoDefault=this.ScriptHook(PROGRAM()) this.oTarget=.NULL. RETURN llNoDefault ENDPROC PROCEDURE runcode LPARAMETERS tcCode,tlFile,tvIgnoreErrors PRIVATE oTHIS oTHIS=this this.lRunCodeMode=.T. this.oHost.RunCode(tcCode,tlFile,tvIgnoreErrors) this.lRunCodeMode=.F. oTHIS=.NULL. ENDPROC PROCEDURE setproperties LPARAMETERS tcProperties LOCAL lcProperties,lnAtPos,lnAtPos2,lcProperty,lcProperty2,lcValue,lvValue LOCAL lcMemLine,lnMemLine,lnMemLineCount,lcVarType LOCAL laMemLines[1] PRIVATE oTHIS IF this.lRelease OR VARTYPE(tcProperties)#"C" OR EMPTY(tcProperties) RETURN .F. ENDIF lcProperties=tcProperties oTHIS=this lnMemLineCount=ALINES(laMemLines,lcProperties) FOR lnMemLine = 1 TO lnMemLineCount lcMemLine=laMemLines[lnMemLine] IF EMPTY(lcMemLine) OR LEFT(lcMemLine,1)=="*" LOOP ENDIF IF LEFT(lcMemLine,1)=="<" AND RIGHT(lcMemLine,1)==">" lvValue=this.RunScript(SUBSTR(lcMemLine,2,LEN(lcMemLine)-2)) LOOP ENDIF lnAtPos=AT("=",lcMemLine) IF lnAtPos=0 LOOP ENDIF lcProperty=ALLTRIM(LEFT(lcMemLine,lnAtPos-1)) lnAtPos2=AT("[",lcProperty) IF lnAtPos2=0 lnAtPos2=AT("(",lcProperty) IF lnAtPos2>0 lcProperty=STRTRAN(STRTRAN(lcProperty,"(","["),")","]") ENDIF ENDIF lcProperty2=IIF(lnAtPos2=0,lcProperty,ALLTRIM(LEFT(lcProperty,lnAtPos2-1))) IF EMPTY(lcProperty2) OR (NOT "."$lcProperty2 AND NOT ","$lcProperty2 AND ; (NOT PEMSTATUS(this,lcProperty2,5) OR ; PEMSTATUS(this,lcProperty2,1) OR ; PEMSTATUS(this,lcProperty2,2) OR ; NOT PEMSTATUS(this,lcProperty2,3)=="Property")) LOOP ENDIF lcVarType=TYPE("this."+lcProperty) lcValue=ALLTRIM(SUBSTR(lcMemLine,lnAtPos+1)) DO CASE CASE LEFT(lcValue,1)=="(" AND RIGHT(lcValue,1)==")" lvValue=EVALUATE(SUBSTR(lcValue,2,LEN(lcValue)-2)) CASE lcVarType=="C" lvValue=lcValue CASE lcVarType=="N" lvValue=VAL(lcValue) CASE lcVarType=="L" lvValue=EVALUATE(lcValue) lvValue=(TYPE("lvValue")=="L" AND lvValue) OTHERWISE lvValue=lcValue ENDCASE this.&lcProperty=lvValue LOOP ENDFOR oTHIS=.NULL. ENDPROC PROCEDURE scripthook LPARAMETERS tcProgram LOCAL lcMethod,lcProperty,lcScript,lnAtPos,lnMemLines,llLastIgnoreErrors IF this.lScriptMode RETURN ENDIF lnAtPos=RAT(".",tcProgram) IF lnAtPos=0 RETURN ENDIF lcMethod=SUBSTR(tcProgram,lnAtPos+1) lcProperty="c"+lcMethod IF NOT PEMSTATUS(this,lcProperty,3)=="Property" RETURN ENDIF lcScript=ALLTRIM(EVALUATE("this."+lcProperty)) IF EMPTY(lcScript) RETURN ENDIF this.lScriptMode=.T. this.cScriptMethod=lcMethod lnMemLines=MEMLINES(lcScript) llLastIgnoreErrors=this.oHost.lIgnoreErrors this.oHost.lIgnoreErrors=this.lIgnoreScriptErrors DO CASE CASE lnMemLines=1 AND LEFT(lcScript,1)=="<" AND RIGHT(lcScript,1)==">" this.RunScript(ALLTRIM(LEFT(SUBSTR(lcScript,2),LEN(lcScript)-2))) OTHERWISE this.RunCode(lcScript) ENDCASE this.oHost.lIgnoreErrors=llLastIgnoreErrors this.cScriptMethod="" this.lScriptMode=.F. RETURN .F. ENDPROC PROCEDURE runscript LPARAMETERS tvItem,tvIgnoreErrors LOCAL lcID,oItem,lcScript lcScript="" DO CASE CASE ISNULL(tvItem) RETURN .F. CASE VARTYPE(tvItem)=="O" IF PEMSTATUS(tvItem,"cScript",5) lcScript=this.cScript ENDIF CASE VARTYPE(tvItem)=="C" IF EMPTY(tvItem) lcScript=this.cScript ELSE lcScript=this.oHost.GetScript(tvItem) ENDIF OTHERWISE lcScript=this.cScript ENDCASE IF EMPTY(lcScript) RETURN .F. ENDIF RETURN this.RunCode(lcScript,,tvIgnoreErrors) ENDPROC PROCEDURE fullpath LPARAMETERS tcFileName,lcNewFileName LOCAL lcFileName,lcSourceCatalogFileExt,lcPath IF EMPTY(tcFileName) RETURN "" ENDIF lcFileName=ALLTRIM(tcFileName) IF LEFT(lcFileName,1)=="(" AND RIGHT(lcFileName,1)==")" lcFileName=EVALUATE(SUBSTR(lcFileName,2,LEN(lcFileName)-2)) IF EMPTY(lcFileName) RETURN "" ENDIF ENDIF IF NOT this.lFullPath OR ":"$lcFileName OR "\\"$lcFileName RETURN LOWER(lcFileName) ENDIF IF SUBSTR(lcFileName,5,1)==":" OR LEFT(lcFileName,4)=="www." lcFileName=LOWER(ALLTRIM(lcFileName)) RETURN lcFileName ENDIF lcSourceCatalogFileExt=LOWER(JUSTEXT(this.cSourceCatalog)) lcPath=IIF(EMPTY(lcSourceCatalogFileExt) OR lcSourceCatalogFileExt=="tmp", ; JUSTPATH(this.ClassLibrary)+"\",this.cSourceCatalogPath) lcNewFileName=LOWER(FULLPATH(lcFileName,lcPath)) IF NOT "*"$lcNewFileName AND NOT "?"$lcNewFileName AND EMPTY(SYS(2000,lcNewFileName)) IF VARTYPE(this.oHost)=="O" lcNewFileName=LOWER(FULLPATH(lcFileName,this.oHost.cDefaultCatalogPath)) ENDIF IF EMPTY(SYS(2000,lcNewFileName)) lcNewFileName=LOWER(FULLPATH(lcFileName)) ENDIF ENDIF RETURN lcNewFileName ENDPROC PROCEDURE writeproperties LPARAMETERS tlUpdateSource,tlAutoAdd this.vResult=.T. DO brwWriteProperties IN browser WITH (this),(tlUpdateSource),(tlAutoAdd) RETURN this.vResult ENDPROC PROCEDURE readproperties this.vResult=.T. DO brwReadProperties IN browser WITH (this) RETURN this.vResult ENDPROC PROCEDURE properties RETURN this.oHost.Properties(this) ENDPROC PROCEDURE release this.lRelease=.T. this.ReleaseObjects ENDPROC PROCEDURE remove LPARAMETERS tlConfirm,tlNoRefresh LOCAL lcAlias,lcSourceAlias,lcMessage,lcCatalog IF this.lCatalog AND this.oHost.nViewType>1 RETURN ENDIF lcMessage=M_WANT_TO_REMOVE_LOC+LOWER(this.cType)+[ "]+this.cText+["] DO CASE CASE this.lCatalog lcMessage=lcMessage+M_FROM_CG_VIEW_LOC CASE this.lFolder OR this.lFolderItem lcMessage=lcMessage+M_FROM_CATALOG_TABLE_LOC IF NOT this.lWebView lcMessage=lcMessage+M_INC_SUBFLD_ITEMS_LOC ENDIF OTHERWISE lcMessage=lcMessage+M_FROM_CATALOG_TABLE_LOC ENDCASE IF tlConfirm AND this.oHost.MsgBox(lcMessage+[?],292)#6 RETURN .F. ENDIF this.lDeleted=.T. IF this.nSourceRecNo<=0 RETURN ENDIF lcAlias=this.cAlias lcSourceAlias=this.cSourceAlias IF this.lCatalog lcCatalog=this.cCatalog IF NOT EMPTY(lcCatalog) this.oHost.UpdateFormCount(-1,lcCatalog) ENDIF IF USED(lcAlias) USE IN (lcAlias) ENDIF IF USED(lcSourceAlias) USE IN (lcSourceAlias) ENDIF lcMessage=M_WANT_TO_DELETE_LOC+[ "]+LOWER(lcCatalog)+[" ]+M_PERMANENTLY_LOC IF tlConfirm AND NOT EMPTY(lcCatalog) AND FILE(lcCatalog) AND ; this.oHost.MsgBox(lcMessage+[?],292)=6 ERASE (lcCatalog) ERASE (FORCEEXT(lcCatalog,"fpt")) ENDIF this.oHost.RefreshBrowser IF tlNoRefresh RETURN ENDIF RETURN ENDIF IF USED(lcAlias) AND BETWEEN(this.nRecNo,1,RECCOUNT(lcAlias)) GO this.nRecNo IN (lcAlias) DELETE IN (lcAlias) ENDIF IF USED(lcSourceAlias) AND BETWEEN(this.nSourceRecNo,1,RECCOUNT(lcSourceAlias)) GO this.nSourceRecNo IN (lcSourceAlias) DELETE IN (lcSourceAlias) ENDIF IF tlNoRefresh RETURN ENDIF IF NOT this.lCatalog this.oParent.SetFocus ENDIF this.Refresh ENDPROC PROCEDURE getfile LPARAMETERS tcFileExt,tlAutoExtDialog IF NOT this.lGetFileAddress RETURN this.oHost.GetFile(tcFileExt,tlAutoExtDialog) ENDIf RETURN this.GetFileAddress(.T.,tcFileExt) ENDPROC PROCEDURE getfileaddress LPARAMETERS tlNoShellExecute,tcFileExt RETURN this.oHost.GetFileAddress(tlNoShellExecute,tcFileExt) ENDPROC PROCEDURE newinstance RETURN NEWOBJECT(this.Class,this.ClassLibrary) ENDPROC PROCEDURE releaseobjects this.oAction=.NULL. this.oControl=.NULL. this.oFolder=.NULL. this.oHost=.NULL. this.oLink=.NULL. this.oNode=.NULL. this.oObject=.NULL. this.oParent=.NULL. this.oRecord=.NULL. this.oShortcutMenu=.NULL. this.oSource=.NULL. this.oTarget=.NULL. ENDPROC PROCEDURE refreshed LOCAL llNoDefault IF NOT this.Enabled RETURN .F. ENDIF llNoDefault=this.ScriptHook(PROGRAM()) RETURN llNoDefault ENDPROC PROCEDURE selected LOCAL llNoDefault IF NOT this.Enabled RETURN .F. ENDIF llNoDefault=this.ScriptHook(PROGRAM()) RETURN llNoDefault ENDPROC PROCEDURE Destroy this.lRelease=.T. this.ReleaseObjects ENDPROC PROCEDURE Error LPARAMETERS nError, cMethod, nLine IF TYPE("this.oHost")=="O" AND NOT ISNULL(this.oHost) RETURN this.oHost.Error(nError,cMethod,nLine) ENDIF IF TYPE("_oBrowser")=="O" AND NOT ISNULL(_oBrowser) RETURN _oBrowser.Error(nError,cMethod,nLine) ENDIF ENDPROC 0&  0 04e%&(-r*U52%Cthis.oShortCutMenubO C OB- T-%%C B-TC% C B-C TCC @%C e%. -T.mpr TDO &lcRightClickMenu TB TK%+C this.oShortCutMenu.oShortCutMenubO C TC TC  T BU OTHIS LLDELEGATELCRIGHTCLICKMENULVRESULTTHIS OSHORTCUTMENU LAUTOSETMENU CLEARMENUSETMENUADDDEFAULTMENUCRIGHTCLICKMENUSHOWMENUBCUTHIS OSHORTCUTMENU CLEARMENUU%B-%;BCBCUTHISLCATALOGLFOLDEROFOLDERSETFOCUSBCUTHISOHOST SELECTITEM:%BTa UNSTYLETHISVISIBLEREFRESH4% BT- UTHISVISIBLEREFRESH4% BT- UTHISENABLEDREFRESH3%BTa UTHISENABLEDREFRESHBCUTHIS OSHORTCUTMENUNEWMENUBCUTNELEMENTNUMBERTHIS OSHORTCUTMENUADDMENUSEPARATORu % #B- AC P\T # $ T % T  %%C  %Ca &Ca '2 TU(OCONTROL ODATAOBJECTNEFFECTNBUTTONNSHIFTNXCOORDNYCOORDOFOLDERLCDROPHOSTNAME LNFILECOUNT LCFILENAME LNFILETOTALONODEOHOSTLCIDLCTYPELLFOLDER LLOLECONTROL LCFILEEXTLAFILES BASECLASS DROPHIGHLIGHT _OCGCLIPBOARD ODROPTARGETTHISLFOLDER LDRAGDROPMODE GETFORMAT LPASTEMENUSLDYNAMICGETDATAFILESCOUNTLNCOUNT CREATENODECIDRELEASEREFRESHBROWSER SELECTFOLDER SELECTITEM   %C TC T C T C  T T  T TCCC@T  T%9 B%CO% TT9T9 HZ C 1 Hw-       T9-B %  T9-B-%C T9 C%TCProject Manager - >0%CC=@CProject Manager - @iT %CC0 T9-B#TCCCC\pjx@(Ce %CCCC@a(CCC !"C  C  +a$a%C AddObjecthCoObject.parentbO #CoObject.parent.BaseClassbC !T7%  CC =@ classbrowser {C T9-UOCONTROLNEFFECTOITEM ODROPTARGET LCMWINDOWOOBJECT LCFILENAME LCPROJECTFILELNCOUNTLNXCOORDLNYCOORD LAMOUSEOBJTHISCTARGET _OCGCLIPBOARD LDRAGDROPMODEOHOSTOPARENTLFOLDER LPASTEMENUSLDYNAMICSETFOCUSPASTE CFILENAMEPROJECTSCOUNTNAMEOACTION DRAGDROP2PARENT;% 'B- TUOCONTROLNEFFECTDEFAULTCURSORSTHISENABLED.% 'B-UOCONTROL ODATAOBJECTEFORMATTHISENABLED T9-%CB-T9a%C T9-B-C C U OCONTROL ODATAOBJECTNEFFECT CLEARDATA _OCGCLIPBOARD LDRAGDROPMODETHISOHOST LMODALDIALOGCOPYSETDATAOLEGIVEFEEDBACKe TC%CT TB-TC % T TB- ^T  Ca HZ (TC/%C     T  T Ca ! ZT(VTCC#%CO   R T  T Ca !UCANCEL NEWSTRING LCNEWSTRINGLCTEXTOFOLDEROITEMLNCOUNTTHISOCONTROL SELECTEDITEMTEXTCTEXTWRITEPROPERTIES LFOLDERITEMOHOST NFOLDERCOUNT AFOLDERLISTCCATALOGNODESNINDEXLFOLDER NITEMCOUNT AITEMLIST AITEMINDEXESz%C3B-TTTaTT %    T %    % c% BC_CTU TLSETFOCUSOHOSTLCID LLDELETED LLLOCKSCREENTHIS LOCKSCREENOITEMCIDLDELETEDLFOLDERREFRESHBROWSEROPARENT NITEMCOUNT OFOLDERSOURCEREFRESHITEMLISTSETFOCUS SELECTFOLDER SELECTITEM%C  B-%C QTC%C TCU TCPROPERTIESTHIS CFILENAMEFULLPATHCFORMCLASSLIBRARY:%C B-%3 UTHISLRIGHTCLICKMENUSHOWMENUshowmenu, clearmenu uponelevelsetfocusshowhidedisablenenablenewmenu addmenuseparatorBaddpropertiesmenu addmenubar\adddefaultmenujcut copyK pastey createlink rename pastelink addpastemenus oledragover oledragdropolecompletedragolegivefeedbackO olesetdata olestartdrag! afterlabeleditX!refresh$ setproperties& rightclick'1q"qA!qAqAAA1QAAAqAA33qAA13A3qAA3AA3AA3AA33qB3qA3qA3qqqAAAQQQ!ABQaA!1AQ3A3A3A3A3qA3A3#qA1A31qAAAQAAaA3qA!!AAAAAA1AqQ!AAA!!1AQAAA!!AAAA3bA1AAQA!!AqAAAQAA1AAAA!AAAqAA3qA3qA31qA!qA1Q3qqAqAAAA1AAAAA3q1"qAAAAAQQAA3q"qA1A1A3qAA2$(&|,.601:7LD=LCRTIp\K`N@ fU+u p[ z-Lm4Tw] y(DN( )T-))Y)+g(+l//123833) 03PROCEDURE showmenu PRIVATE oTHIS LOCAL llDelegate,lcRightClickMenu,lvResult IF TYPE("this.oShortCutMenu")#"O" OR ISNULL(this.oShortCutMenu) RETURN .F. ENDIF llDelegate=.F. IF this.lAutoSetMenu IF NOT this.ClearMenu() RETURN .F. ENDIF llDelegate=this.oShortCutMenu.SetMenu(this) IF NOT llDelegate AND NOT this.SetMenu(this) RETURN .F. ENDIF this.AddDefaultMenu(this) ENDIF lcRightClickMenu=LOWER(ALLTRIM(this.cRightClickMenu)) IF NOT EMPTY(lcRightClickMenu) IF NOT "."$lcRightClickMenu lcRightClickMenu=lcRightClickMenu+".mpr" ENDIF oTHIS=this DO &lcRightClickMenu oTHIS=.NULL. RETURN ENDIF oTHIS=this IF llDelegate AND TYPE("this.oShortCutMenu.oShortCutMenu")=="O" AND ; NOT ISNULL(this.oShortCutMenu.oShortCutMenu) lvResult=this.oShortCutMenu.oShortCutMenu.ShowMenu() ELSE lvResult=this.oShortCutMenu.ShowMenu() ENDIF oTHIS=.NULL. RETURN lvResult ENDPROC PROCEDURE clearmenu RETURN this.oShortCutMenu.ClearMenu() ENDPROC PROCEDURE uponelevel IF this.lCatalog RETURN .F. ENDIF IF this.lFolder RETURN this.oFolder.SetFocus() ENDIF RETURN this.oFolder.oFolder.SetFocus() ENDPROC PROCEDURE setfocus RETURN this.oHost.SelectItem(this) ENDPROC PROCEDURE show LPARAMETERS nStyle IF this.Visible RETURN ENDIF this.Visible=.T. this.Refresh ENDPROC PROCEDURE hide IF NOT this.Visible RETURN ENDIF this.Visible=.F. this.Refresh ENDPROC PROCEDURE disable IF NOT this.Enabled RETURN ENDIF this.Enabled=.F. this.Refresh ENDPROC PROCEDURE enable IF this.Enabled RETURN ENDIF this.Enabled=.T. this.Refresh ENDPROC PROCEDURE newmenu RETURN this.oShortCutMenu.NewMenu() ENDPROC PROCEDURE addmenuseparator LPARAMETERS tnElementNumber RETURN this.oShortCutMenu.AddMenuSeparator(tnElementNumber) ENDPROC PROCEDURE addpropertiesmenu LPARAMETERS toObject,toMenuObject IF NOT toObject.lPropertiesMenu RETURN .F. ENDIF toMenuObject.AddMenuSeparator toMenuObject.AddMenuBar(B_PROPERTIES1_LOC,"oTHIS.oHost.oItemSource.Properties") ENDPROC PROCEDURE addmenubar LPARAMETERS tcPrompt,tcOnSelection,tcClauses,tnElementNumber,tlMark,tlDisabled,tlBold IF VARTYPE(tcOnSelection)=="C" AND NOT EMPTY(tcOnSelection) tcOnSelection="oTHIS.RunCode([;"+tcOnSelection+"])" ENDIF RETURN this.oShortCutMenu.AddMenuBar(tcPrompt,tcOnSelection,tcClauses,tnElementNumber, ; tlMark,tlDisabled,tlBold) ENDPROC PROCEDURE adddefaultmenu LPARAMETERS toObject LOCAL llViewMode,llCutDisable,llRemoveDisable,llCreateLinkDisable,llCleanupDisable IF NOT this.lDefaultMenu RETURN .F. ENDIF llViewMode=(this.oHost.nViewType>1) llCreateLinkDisable=llViewMode this.AddMenuSeparator DO CASE CASE toObject.lFolder llCreateLinkDisable=.T. IF toObject.lWebView this.AddMenuBar(B_REFRESH1_LOC,"oTHIS.Refresh") ELSE this.AddMenuBar(B_FIND1_LOC,"oTHIS.oHost.oItemSource.Find") ENDIF this.AddMenuSeparator CASE toObject.lFolderItem this.AddMenuBar(B_OPEN1_LOC,"oTHIS.Open",,,,,.T.) this.AddMenuSeparator ENDCASE llCutDisable=(llViewMode OR toObject.lCatalog OR toObject.oFolder.lDynamic) this.AddMenuBar(B_CUT1_LOC,"oTHIS.oHost.oItemSource.Cut",,,,llCutDisable) this.AddMenuBar(B_COPY1_LOC,"oTHIS.oHost.oItemSource.Copy") this.AddPasteMenus(toObject,this) this.AddMenuSeparator IF NOT llCreateLinkDisable this.AddMenuBar(B_CREATELINK1_LOC,"oTHIS.oHost.oItemSource.CreateLink") ENDIF llRemoveDisable=(toObject.nSourceRecNo<=0 OR (toObject.lCatalog AND ; toObject.cCatalog==toObject.oHost.cDefaultCatalog)) this.AddMenuBar(B_REMOVE1_LOC,"oTHIS.oHost.oItemSource.Remove(.T.)",,,,llRemoveDisable) this.AddMenuBar(B_RENAME1_LOC,"oTHIS.oHost.oItemSource.Rename",,,,toObject.nSourceRecNo<=0) IF toObject.lCatalog IF LOWER(JUSTEXT(toObject.cSourceCatalog ))=="dbf" AND ; USED(toObject.cSourceAlias) llCleanupDisable=.F. ELSE llCleanupDisable=.T. ENDIF this.AddMenuSeparator this.AddMenuBar(B_BACKUP1_LOC,"oTHIS.oHost.oItemSource.Backup",,,,llCleanupDisable) this.AddMenuBar(B_RESTORE1_LOC,"oTHIS.oHost.oItemSource.Restore",,,,llCleanupDisable) this.AddMenuBar(B_CLEANUP1_LOC,"oTHIS.oHost.oItemSource.Cleanup",,,,llCleanupDisable) ENDIF this.AddPropertiesMenu(toObject,this) ENDPROC PROCEDURE cut RETURN this.oHost.Cut(this) ENDPROC PROCEDURE copy RETURN this.oHost.Copy(this) ENDPROC PROCEDURE paste RETURN this.oHost.Paste(this) ENDPROC PROCEDURE createlink RETURN this.oHost.CreateLink(this) ENDPROC PROCEDURE rename IF this.lObject OR this.lView RETURN .F. ENDIF this.oHost.RunCodeTimer("_oBrowser."+this.oControl.Name+".object.StartLabelEdit") ENDPROC PROCEDURE pastelink RETURN this.oHost.PasteLink(this) ENDPROC PROCEDURE addpastemenus LPARAMETERS toObject,toMenuObject LOCAL llPasteDisable,llPasteLinkDisable,llViewMode IF NOT toObject.lPasteMenus OR (NOT toObject.lFolder AND NOT toObject.lFolderItem) OR ; toObject.lDynamic RETURN .F. ENDIF llViewMode=(toObject.oHost.nViewType>1) llPasteDisable=(llViewMode OR TYPE("_screen._oCGClipBoard.oItem.oRecord")#"O" OR ; ISNULL(_screen._oCGClipBoard.oItem.oRecord) OR _screen._oCGClipBoard.oItem=this) llPasteLinkDisable=(llPasteDisable OR _screen._oCGClipBoard.lCut) toMenuObject.AddMenuBar(B_PASTE1_LOC,"oTHIS.oHost.oFolder.Paste",,,,llPasteDisable) IF toObject.lFolder toMenuObject.AddMenuBar(B_PASTELINE1_LOC,"oTHIS.oHost.oFolder.PasteLink",,,,llPasteLinkDisable) ENDIF ENDPROC PROCEDURE oledragover LPARAMETERS oControl, oDataObject, nEffect, nButton, nShift, nXCoord, nYCoord, nState LOCAL oNode DO CASE CASE nState=DRAG_LEAVE IF this.lFolder oNode=this.oHost.oleFolderList.Nodes[this.oHost.nFolderListIndex] ELSE oNode=this.oHost.oleItems.ListItems[this.oHost.nItemListIndex] ENDIF OTHERWISE IF this.lFolder oNode=this.oHost.oleFolderList.Nodes[this.nIndex] ELSE oNode=this.oHost.oleItems.ListItems[this.nIndex] ENDIF ENDCASE IF VARTYPE(oNode)#"O" RETURN ENDIF this.oHost.oleFolderList.DropHighLight=oNode DO CASE CASE (_screen._oCGClipBoard.lDragDropMode OR oDataObject.GetFormat(CF_FILES)) AND ; NOT this.lDynamic oControl.OLEDropHasData=DROPHASDATA_USEFUL oControl.OLEDropEffects=DROPEFFECT_COPY OTHERWISE nEffect=0 oControl.OLEDropHasData=DROPHASDATA_NOTUSEFUL oControl.OLEDropEffects=DROPEFFECT_NONE ENDCASE ENDPROC PROCEDURE oledragdrop LPARAMETERS oControl, oDataObject, nEffect, nButton, nShift, nXCoord, nYCoord LOCAL oFolder,lcDropHostName,lnFileCount,lcFileName,lnFileTotal,oNode,oHost LOCAL lcID,lcType,llFolder,llOLEControl,lcFileExt LOCAL laFiles[1] IF LOWER(oControl.BaseClass)=="olecontrol" oControl.DropHighLight=.NULL. ENDIF _screen._oCGClipBoard.oDropTarget=.NULL. oFolder=IIF(this.lFolder,this,this.oFolder) IF _screen._oCGClipBoard.lDragDropMode _screen._oCGClipBoard.oDropTarget=this nEffect=0 RETURN ENDIF DO CASE CASE oDataObject.GetFormat(CF_FILES) IF NOT oFolder.lPasteMenus OR oFolder.lDynamic nEffect=0 RETURN ENDIF laFiles="" oDataObject.GetData(CF_FILES,@laFiles) lnFileCount=0 lcID="" llOLEControl=(LOWER(LEFT(oControl.BaseClass,3))=="ole") IF llOLEControl lnFileTotal=oDataObject.Files.Count ELSE lnFileTotal=ALEN(laFiles) ENDIF FOR lnCount = 1 TO lnFileTotal IF llOLEControl lcFileName=oDataObject.Files(lnCount) ELSE lcFileName=laFiles[lnCount] ENDIF IF EMPTY(lcFileName) LOOP ENDIF lcFileExt=LOWER(JUSTEXT(lcFileName)) llFolder=EMPTY(JUSTEXT(lcFileName)) lcType=IIF(llFolder,"FOLDER","_FileItem") IF INLIST(lcFileExt,"vcx","pjx","dbc") lcType="FOLDER" ENDIF oNode=oFolder.oHost.CreateNode(oFolder,lcType,lcFileName) IF VARTYPE(oNode)=="O" lnFileCount=lnFileCount+1 IF EMPTY(lcID) lcID=oNode.cID ENDIF oNode.Release oNode=.NULL. ENDIF ENDFOR IF lnFileCount>0 oHost=this.oHost oHost.RefreshBrowser IF NOT EMPTY(lcID) IF llFolder oHost.SelectFolder(lcID,.T.) ELSE oHost.SelectItem(lcID,.T.) ENDIF ENDIF ENDIF OTHERWISE nEffect=0 ENDCASE ENDPROC PROCEDURE olecompletedrag LPARAMETERS oControl, nEffect LOCAL oItem,oDropTarget,lcMWindow,oObject,lcFileName,lcProjectFile,lnCount LOCAL lnXCoord,lnYCoord LOCAL laMouseObj[1] IF AMOUSEOBJ(laMouseObj)>=4 oObject=laMouseObj[1] lnXCoord=laMouseObj[3] lnYCoord=laMouseObj[4] ELSE oObject=.NULL. lnXCoord=0 lnYCoord=0 ENDIF lcMWindow=LOWER(ALLTRIM(MWINDOW())) this.cTarget=lcMWindow nEffect=0 IF NOT _screen._oCGClipBoard.lDragDropMode RETURN ENDIF IF VARTYPE(oObject)#"O" oObject=.NULL. ENDIF oItem=_screen._oCGClipBoard.oItem oDropTarget=_screen._oCGClipBoard.oDropTarget DO CASE CASE NOT ISNULL(oDropTarget) DO CASE CASE oDropTarget=this OR oDropTarget=this.oHost OR oDropTarget=this.oParent _screen._oCGClipBoard.lDragDropMode=.F. RETURN CASE oDropTarget.lFolder IF NOT oDropTarget.lPasteMenus OR oDropTarget.lDynamic _screen._oCGClipBoard.lDragDropMode=.F. RETURN .F. ENDIF IF oDropTarget.SetFocus() oDropTarget.Paste ENDIF ENDCASE _screen._oCGClipBoard.oDropTarget=.NULL. CASE ISNULL(oObject) lnCount=LEN(M_PROJECT_MANAGER_LOC+" - ") IF LOWER(LEFT(lcMWindow,lnCount))==LOWER(M_PROJECT_MANAGER_LOC+" - ") lcFileName=this.cFileName IF EMPTY(lcFileName) OR NOT FILE(lcFileName) _screen._oCGClipBoard.lDragDropMode=.F. RETURN ENDIF lcProjectFile=LOWER(FORCEEXT(ALLTRIM(SUBSTR(lcMWindow,lnCount+1)),"pjx")) FOR lnCount = 1 TO _vfp.Projects.Count IF LOWER(JUSTFNAME(_vfp.Projects[lnCount].Name))==lcProjectFile this.oHost.oItem.oAction.DragDrop2(_vfp.Projects[lnCount], ; lnXCoord,lnYCoord) EXIT ENDIF ENDFOR ENDIF this.oHost.oItem.oAction.DragDrop2(oObject,lnXCoord,lnYCoord) CASE NOT ISNULL(oItem) DO WHILE .T. IF PEMSTATUS(oObject,"AddObject",5) OR TYPE("oObject.parent")#"O" OR ; TYPE("oObject.parent.BaseClass")#"C" EXIT ENDIF oObject=oObject.parent ENDDO IF NOT oObject=this.oHost AND NOT LOWER(LEFT(oObject.Name,12))=="classbrowser" oItem.oAction.DragDrop2(oObject,lnXCoord,lnYCoord) ENDIF ENDCASE _screen._oCGClipBoard.lDragDropMode=.F. ENDPROC PROCEDURE olegivefeedback LPARAMETERS oControl, nEffect, defaultcursors IF NOT this.Enabled RETURN .F. ENDIF defaultcursors=14 ENDPROC PROCEDURE olesetdata LPARAMETERS oControl, oDataObject, eFormat IF NOT this.Enabled RETURN .F. ENDIF ENDPROC PROCEDURE olestartdrag LPARAMETERS oControl, oDataObject, nEffect oDataObject.ClearData _screen._oCGClipBoard.lDragDropMode=.F. IF this.oHost.lModalDialog RETURN .F. ENDIF _screen._oCGClipBoard.lDragDropMode=.T. IF NOT this.Copy() _screen._oCGClipBoard.lDragDropMode=.F. RETURN .F. ENDIF oDataObject.SetData("",0) this.OLEGiveFeedback(oControl,nEffect) ENDPROC PROCEDURE afterlabeledit LPARAMETERS cancel, newstring LOCAL lcNewString,lcText,oFolder,oItem,lnCount lcNewString=ALLTRIM(newstring) IF EMPTY(lcNewString) cancel=1 RETURN .F. ENDIF lcText=ALLTRIM(this.oControl.SelectedItem.Text) IF lcNewString==lcText newstring=lcText cancel=1 RETURN .F. ENDIF WITH this .cText=lcNewString .WriteProperties(.T.) DO CASE CASE .lFolderItem FOR lnCount = 1 TO this.oHost.nFolderCount oFolder=this.oHost.aFolderList[lnCount] IF NOT ISNULL(oFolder) AND oFolder.cCatalog==this.cCatalog AND ; oFolder.cText==lcText oFolder.oControl.Nodes[oFolder.nIndex].Text=.cText oFolder.cText=lcNewString oFolder.WriteProperties(.T.) EXIT ENDIF ENDFOR CASE .lFolder oFolder=this.oFolder FOR lnCount = 1 TO oFolder.nItemCount oItem=this.oHost.aItemList[oFolder.aItemIndexes[lnCount]] IF VARTYPE(oItem)=="O" AND oItem.cText==lcText oItem.oControl.Nodes[oItem.nIndex].Text=.cText oItem.cText=lcNewString oItem.WriteProperties(.T.) EXIT ENDIF ENDFOR ENDCASE ENDWITH ENDPROC PROCEDURE refresh LPARAMETERS tlSetFocus LOCAL oHost,lcID,llDeleted,llLockScreen IF ISNULL(this.oHost) RETURN .F. ENDIF oHost=this.oHost llLockScreen=oHost.LockScreen oHost.LockScreen=.T. WITH oHost.oItem lcID=.cID llDeleted=.lDeleted ENDWITH IF this.lFolder oHost.RefreshBrowser ELSE this.oParent.nItemCount=-1 IF this.oParent.cID==oHost.oFolderSource.cID oHost.RefreshItemList ELSE this.oParent.SetFocus ENDIF ENDIF IF NOT llDeleted IF this.lFolder oHost.SelectFolder(lcID,tlSetFocus) ELSE oHost.SelectItem(lcID,tlSetFocus) ENDIF ENDIF oHost.LockScreen=llLockScreen ENDPROC PROCEDURE setproperties LPARAMETERS tcProperties IF NOT DODEFAULT(tcProperties) RETURN .F. ENDIF IF NOT EMPTY(this.cFileName) this.cFileName=this.FullPath(this.cFileName) ENDIF IF NOT EMPTY(this.cFormClassLibrary) this.cFormClassLibrary=this.FullPath(this.cFormClassLibrary) ENDIF ENDPROC PROCEDURE rightclick IF NOT DODEFAULT() RETURN .F. ENDIF IF this.lRightClickMenu this.ShowMenu ENDIF ENDPROC